package vera.com.service;

import java.sql.CallableStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import vera.app.bean.persona;
import vera.com.dao.conexion;

public class metodosDBimplement implements metodosDB {
	
	conexion conn = new conexion();
	CallableStatement Sentencia;
	ResultSet rs;

	@Override
	public void insert(persona objpersona) {
		try{
			Sentencia= conn.Conexion().prepareCall("call insertarpersona(?,?,?)");
			Sentencia.setString(1, objpersona.getNombre());
			Sentencia.setLong(2, objpersona.getId());
			Sentencia.setInt(3, objpersona.getEdad());
			Sentencia.execute();
		}catch(Exception e){
			e.printStackTrace();
		}
		
	}

	@Override
	public List<persona> listar() {
		persona objpersona;
		List<persona> per = new ArrayList<persona>();
		try{

			Sentencia=conn.Conexion().prepareCall("call listarpersona()");
			rs=Sentencia.executeQuery();
			while(rs.next()){
				objpersona = new persona();
				objpersona.setNombre(rs.getString(1));
				objpersona.setId(Long.parseLong(rs.getString(2)));
				objpersona.setEdad(Integer.parseInt(rs.getString(3)));

				per.add(objpersona);		 
			}


		}catch(Exception e){

		}	
		

		return per;
	}

	@Override
	public void eliminar(long id) {
		try{

			Sentencia=conn.Conexion().prepareCall("call eliminarpersona(?)");
			Sentencia.setLong(1,id);
			Sentencia.execute();
		}catch(Exception e){

		}
		
	}

	@Override
	public void actualizar(persona objpersona) {
		try {
			Sentencia = conn.Conexion().prepareCall("call editarpersona(?,?,?)");
			Sentencia.setString(1, objpersona.getNombre());
			Sentencia.setInt(2, objpersona.getEdad());
			Sentencia.setLong(3, objpersona.getId());
			Sentencia.execute();
		} catch (Exception e) {
			e.printStackTrace();
		}
		
	}

}
